52 research outputs found

    Faster reachability analysis for LR(1) parsers

    Get PDF
    International audienceWe present a novel algorithm for reachability in an LR(1) automaton. For each transition in the automaton, the problem is to determine under what conditions this transition can be taken, that is, which (minimal) input fragment and which lookahead symbol allow taking this transition. Our algorithm outperforms Pottier's algorithm (2016) by up to three orders of magnitude on real-world grammars. Among other applications, this vastly improves the scalability of Jeffery's error reporting technique (2003), where a mapping of (reachable) error states to messages must be created and maintained

    Advancing measurements and representations of subsurface heterogeneity and dynamic processes: towards 4D hydrogeology

    Get PDF
    Essentially all hydrogeological processes are strongly influenced by the subsurface spatial heterogeneity and the temporal variation of environmental conditions, hydraulic properties, and solute concentrations. This spatial and temporal variability generally leads to effective behaviors and emerging phenomena that cannot be predicted from conventional approaches based on homogeneous assumptions and models. However, it is not always clear when, why, how, and at what scale the 4D (3D + time) nature of the subsurface needs to be considered in hydrogeological monitoring, modeling, and applications. In this paper, we discuss the interest and potential for the monitoring and characterization of spatial and temporal variability, including 4D imaging, in a series of hydrogeological processes: (1) groundwater fluxes, (2) solute transport and reaction, (3) vadose zone dynamics, and (4) surface–subsurface water interactions. We first identify the main challenges related to the coupling of spatial and temporal fluctuations for these processes. We then highlight recent innovations that have led to significant breakthroughs in high-resolution space–time imaging and modeling the characterization, monitoring, and modeling of these spatial and temporal fluctuations. We finally propose a classification of processes and applications at different scales according to their need and potential for high-resolution space–time imaging. We thus advocate a more systematic characterization of the dynamic and 3D nature of the subsurface for a series of critical processes and emerging applications. This calls for the validation of 4D imaging techniques at highly instrumented observatories and the harmonization of open databases to share hydrogeological data sets in their 4D components

    33Úmes Journées Francophones des Langages Applicatifs

    Get PDF
    International audienceLes 33Ăšmes JournĂ©es Francophones des Langages Applicatifs (JFLA) se sont tenues Ă  Saint-MĂ©dard-d'Excideuil, plus prĂ©cisĂ©ment Domaine d'EssendiĂ©ras (PĂ©rigord), du mardi 28 juin 2022 au vendredi 1er juillet 2022.Les JFLA rĂ©unissent concepteurs, utilisateurs et thĂ©oriciens ; elles ont pour ambition de couvrir les domaines des langages applicatifs, de la preuve formelle, de la vĂ©rification de programmes, et des objets mathĂ©matiques qui sous-tendent ces outils. Ces domaines doivent ĂȘtre pris au sens large : nous souhaitons promouvoir les ponts entre les diffĂ©rentes thĂ©matiques.- Langages fonctionnels et applicatifs : sĂ©mantique, compilation, optimisation, typage, mesures, extensions par d'autres paradigmes.- Assistants de preuve : implĂ©mentation, nouvelles tactiques, dĂ©veloppements prĂ©sentant un intĂ©rĂȘt technique ou mĂ©thodologique.- Logique, correspondance de Curry-Howard, rĂ©alisabilitĂ©, extraction de programmes, modĂšles.- SpĂ©cification, prototypage, dĂ©veloppements formels d'algorithmes.- VĂ©rification de programmes ou de modĂšles, mĂ©thode dĂ©ductive, interprĂ©tation abstraite, raffinement.- Utilisation industrielle des langages fonctionnels et applicatifs, ou des mĂ©thodes issues des preuves formelles, outils pour le web.Les articles soumis aux JFLA sont relus par au moins deux personnes s'ils sont acceptĂ©s, trois personnes s'ils sont rejetĂ©s. Les critiques des relecteurs sont toujours bienveillantes et la plupart du temps encourageantes et constructives, mĂȘme en cas de rejet

    Merlin: a language server for OCaml (experience report)

    Get PDF
    International audienceWe report on the experience of developing Merlin, a language server for the OCaml programming language in development since 2013. Merlin is a daemon that connects to your favourite text editor and provides services that require a fine-grained understanding of the programming language syntax and static semantics: instant feedback on warnings and errors, autocompletion, "type of the code under the cursor", "go to definition", etc. Language servers need to handle incomplete and partially-incorrect programs, and try to be incremental to minimize recomputation after small editing actions. Merlin was built by carefully adapting the existing tools (the OCamllex lexer and Menhir parser generators) to better support incrementality, incompleteness and error handling. These extensions are elegant and general, as demonstrated by the interesting, unplanned uses that the OCaml community found for them. They could be adapted to other frontends-in any language. Besides incrementality, we discuss the way Merlin communicates with editors, describe the design decisions that went into some demanding features and report on some of the non-apparent difficulties in building good editor support, emerging from expressive programming languages or frustrating tooling ecosystems. We expect this experience report to be of interest to authors of interactive language tooling for any programming language; many design choices may be reused, and some hard-won lessons can serve as warnings

    Tail Modulo Cons

    Get PDF
    National audienceOCaml function calls consume space on the system stack. Operatingsystems set default limits on the stack space which are much lowerthan the available memory. If a program runs out of stack space,they get the dreaded "Stack Overflow" exception -- they crash. Asa result, OCaml programmers have to be careful, when they writerecursive functions, to remain in the so-called_tail-recursive_ fragment, using _tail_ calls that do notconsume stack space.This discipline is a source of difficulties for both beginners andexperts. Beginners have to be taught recursion, and thentail-recursion. Experts disagree on the "right" way to write`List.map`. The direct version is beautiful but nottail-recursive, so it crashes on larger inputs. The naivetail-recursive transformation is (slightly) slower than the directversion, and experts may want to avoid that cost. Some librariespropose horrible implementations, unrolling code by hand, tocompensate for this performance loss. In general, tail-recursionrequires the programmer to manually perform sophisticated programtransformations.In this work we propose an implementation of "Tail Modulo Cons"(TMC) for OCaml. TMC is a program transformation for a fragment ofnon-tail-recursive functions, that rewrites them in_destination-passing style_. The supported fragment is smallerthan other approaches such as continuation-passing-style, but theperformance of the transformed code is on par with the direct,non-tail-recursive version. Many useful functions that traversea recursive datastructure and rebuild another recursive structureare in the TMC fragment, in particular `List.map`(and `List.filter`, `List.append`, etc.). Finally those functionscan be written in a way that is beautiful, correct on all inputs,and efficient.In this work we give a novel modular, compositional definition ofthe TMC transformation. We discuss the design space ofuser-interface choices: what degree of control for the user, when towarn or fail when the transformation may lead unexpected results. Wemention a few remaining design difficulties, and present(in appendices) a performance evaluation of the transformed code

    Constraining geometrical, hydrodynamical and mechanical properties ofa fault zone at hourly time scales from ground surface tilt data

    No full text
    International audienceFlow through reservoirs such as fractured media is powered by pressure gradients which also generate measurableporoelastic deformation of the rock body. The combined analysis of ground surface deformation and sub-surfacefluid pressure provides valuable insights of a reservoir’s structure and hydromechanical properties, which are ofinterest for deep-seated CO2 or nuclear waste storage for instance. Amongst all surveying tools, surface tiltmetersoffer the possibility to grasp hydraulically-induced deformation over a broad range of time scales with a remarkableprecision (1 nanoradian). Here, we investigate the information content of transient surface tilt generated by flow ina kilometer scale sub-vertical fault zone and its surrounding fractured rock matrix. Our approach involves the combinedanalysis of field data and results of a fully coupled poroelastic model, where fault and matrix are representedas equivalent homogeneous domains. The signature of pressure changes in the fault zone due to pumping cycles isclearly recognizable in field tilt data and we aim to explain the peculiar features that appear in: 1) tilt time seriesalone from a set of 4 instruments; 2) the ratio of tilt over pressure. With the model, we evidence that the shape oftilt measurements on both sides of a fault zone is sensitive to its diffusivity and its elastic modulus. In particular, weshow a few well placed tiltmeters (on each side of a fault) give more information on the medium’s properties thanwell spatialized surface displacement maps. Furthermore, the ratio of tilt over pressure predominantly encompassesinformation about the system’s dynamic behavior and extent of the fault zone, and allows separating contributionsof flow in the different compartments. Hence, tiltmeters are well suited to characterize hydromechanical processesassociated to fault zone hydrogeology at short time scales, where space-borne surveying methods fail to seize anydeformation signal
    • 

    corecore